User interface for editing a value in place

ABSTRACT

A user interface element is displayed for in place editing of values within a document. For example, in response to selecting a value, a user interface is displayed near the value that receives a slide gesture for adjusting the value in place. The user interface may be configured to select one of the discrete parts of the value in response to changing a level of the slide gesture. For example, a user may move the swipe gesture from a level used for adjusting the day value to the level representing the year value. The user interface displayed and method(s) used to adjust the value may be based on the type of value and the structure and content of the document.

CROSS-REFERENCE

The present application is a continuation of and claims priority to U.S.patent application Ser. No. 13,240,547, filed Sep. 22, 2011, entitledUSER INTERFACE FOR EDITING A VALUE IN PLACE, the disclosure of which ishereby incorporated in its entirety by reference.

BACKGROUND

When working on many mobile computing devices (e.g. smart phone, tablet)the screen real estate and input devices available are often limitedmaking editing of displayed content challenging for many users. Forexample, not only is the display limited in size, many devices use aSoftware-based Input Panel (SIP) in place of a physical keyboard. Thedisplay of the SIP can use a large amount of the limited screen spaceleaving little space available to show information that is associatedwith an application on the computing device.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

A user interface element is displayed for in place editing of valueswithin a document. For example, in response to selecting a value, a userinterface is displayed near the value that receives a slide gesture foradjusting the value in place. The user interface may be configured toselect one of the discrete parts of the value in response to changing alevel of the slide gesture. For example, a user may move the swipegesture from a level used for adjusting the day value to the levelrepresenting the year value. The user interface displayed and method(s)used to adjust the value may be based on the type of value and thestructure and content of the document.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary computing environment;

FIG. 2 shows a system including the use of a user interface for the inplace editing of values;

FIG. 3 shows a process for selecting and adjusting a value in placeusing a user interface element;

FIG. 4 shows a process for selecting and adjusting different parts of avalue;

FIG. 5 shows displays for adjusting a value in place within aspreadsheet;

FIG. 6 shows displays for adjusting a value in place within aspreadsheet;

FIG. 7 shows displays for adjusting a value in place within a document;and

FIG. 8 shows displays for adjusting a value in place within a documentusing a slide UI element.

DETAILED DESCRIPTION

Referring now to the drawings, in which like numerals represent likeelements, various embodiment will be described. In particular, FIG. 1and the corresponding discussion are intended to provide a brief,general description of a suitable computing environment in whichembodiments may be implemented.

Generally, program modules include routines, programs, components, datastructures, and other types of structures that perform particular tasksor implement particular abstract data types. Other computer systemconfigurations may also be used, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and the like.Distributed computing environments may also be used where tasks areperformed by remote processing devices that are linked through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

Referring now to FIG. 1, an illustrative computer environment for acomputer 100 utilized in the various embodiments will be described. Thecomputer environment shown in FIG. 1 includes computing devices thateach may be configured as a mobile computing device (e.g. phone, tablet,netbook, laptop), server, a desktop, or some other type of computingdevice and includes a central processing unit 5 (“CPU”), a system memory7, including a random access memory 9 (“RAM”) and a read-only memory(“ROM”) 10, and a system bus 12 that couples the memory to the centralprocessing unit (“CPU”) 5.

A basic input/output system containing the basic routines that help totransfer information between elements within the computer, such asduring startup, is stored in the ROM 10. The computer 100 furtherincludes a mass storage device 14 for storing an operating system 16,application(s) 24 (e.g. productivity application, Web Browser, and thelike) and user interface manager 26 which will be described in greaterdetail below.

The mass storage device 14 is connected to the CPU 5 through a massstorage controller (not shown) connected to the bus 12. The mass storagedevice 14 and its associated computer-readable media providenon-volatile storage for the computer 100. Although the description ofcomputer-readable media contained herein refers to a mass storagedevice, such as a hard disk or CD-ROM drive, the computer-readable mediacan be any available media that can be accessed by the computer 100.

By way of example, and not limitation, computer-readable media maycomprise computer storage media and communication media. Computerstorage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules or other data. Computer storage media includes, but isnot limited to, RAM, ROM, Erasable Programmable Read Only Memory(“EPROM”), Electrically Erasable Programmable Read Only Memory(“EEPROM”), flash memory or other solid state memory technology, CD-ROM,digital versatile disks (“DVD”), or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by the computer 100.

Computer 100 operates in a networked environment using logicalconnections to remote computers through a network 18, such as theInternet. The computer 100 may connect to the network 18 through anetwork interface unit 20 connected to the bus 12. The networkconnection may be wireless and/or wired. The network interface unit 20may also be utilized to connect to other types of networks and remotecomputer systems. The computer 100 may also include an input/outputcontroller 22 for receiving and processing input from a number of otherdevices, including a keyboard, mouse, a touch input device, orelectronic stylus (not shown in FIG. 1). Similarly, an input/outputcontroller 22 may provide input/output to a display screen 23, aprinter, or other type of output device.

A touch input device may utilize any technology that allowssingle/multi-touch input to be recognized (touching/non-touching). Forexample, the technologies may include, but are not limited to: heat,finger pressure, high capture rate cameras, infrared light, opticcapture, tuned electromagnetic induction, ultrasonic receivers,transducer microphones, laser rangefinders, shadow capture, and thelike. According to an embodiment, the touch input device may beconfigured to detect near-touches (i.e. within some distance of thetouch input device but not physically touching the touch input device).The touch input device may also act as a display. The input/outputcontroller 22 may also provide output to one or more display screens 23,a printer, or other type of input/output device.

A camera and/or some other sensing device may be operative to record oneor more users and capture motions and/or gestures made by users of acomputing device. Sensing device may be further operative to capturespoken words, such as by a microphone and/or capture other inputs from auser such as by a keyboard and/or mouse (not pictured). The sensingdevice may comprise any motion detection device capable of detecting themovement of a user. For example, a camera may comprise a MICROSOFTKINECT® motion capture device comprising a plurality of cameras and aplurality of microphones.

Embodiments of the invention may be practiced via a system-on-a-chip(SOC) where each or many of the components/processes illustrated in theFIGURES may be integrated onto a single integrated circuit. Such a SOCdevice may include one or more processing units, graphics units,communications units, system virtualization units and variousapplication functionality all of which are integrated (or “burned”) ontothe chip substrate as a single integrated circuit. When operating via aSOC, all/some of the functionality, described herein, with respect tothe Unified Communications via application-specific logic integratedwith other components of the computing device/system 100 on the singleintegrated circuit (chip).

As mentioned briefly above, a number of program modules and data filesmay be stored in the mass storage device 14 and RAM 9 of the computer100, including an operating system 16 suitable for controlling theoperation of a computer, such as the WINDOWS PHONE 7®, WINDOWS 7®, orWINDOWS SERVER® operating system from MICROSOFT CORPORATION of Redmond,Wash. The mass storage device 14 and RAM 9 may also store one or moreprogram modules. In particular, the mass storage device 14 and the RAM 9may store one or more application programs, such as a spreadsheetapplication, word processing application and/or other applications.According to an embodiment, the MICROSOFT OFFICE suite of applicationsis included. The application(s) may be client based and/or web based.For example, a network service 27 may be used, such as: MICROSOFTWINDOWS LIVE, MICROSOFT OFFICE 365 or some other network based service.

User interface manager 26 is configured to present a user interfaceelement (e.g. UI 28) to edit/adjust a value in place. User interfacemanager 26 may be located externally from an application, e.g. aspreadsheet application or some other application, as shown or may be apart of an application. Further, all/some of the functionality providedby user interface manager 26 may be located internally/externally froman application for which the user interface element is used for editingvalue(s) in place. More details regarding the user interface manager aredisclosed below.

FIG. 2 shows a system including the use of a user interface for the inplace editing of values. As illustrated, system 200 includes applicationprogram 210, user interface (UI) manager 26 and touch screen inputdevice/display 215.

In order to facilitate communication with the UI manager 26, one or morecallback routines, may be implemented. According to one embodiment,application program 210 is a business productivity application that isconfigured to receive input from a touch-sensitive input device 215and/or keyboard input (e.g. a physical keyboard and/or SIP). Forexample, UI manager 26 may provide information to application 210 inresponse to a user's gesture (i.e. finger on hand 230) selecting a valueand performing a swipe gesture on user interface element 216 to adjustthe selected value. The term “swipe gesture” may include a swipingaction and/or dragging action.

System 200 as illustrated comprises a touch screen input device/display215 that detects when a touch input has been received (e.g. a fingertouching or nearly teaching the touch screen). Any type of touch screenmay be utilized that detects a user's touch input. For example, thetouch screen may include one or more layers of capacitive material thatdetects the touch input. Other sensors may be used in addition to or inplace of the capacitive material. For example, Infrared (IR) sensors maybe used. According to an embodiment, the touch screen is configured todetect objects that in contact with or above a touchable surface.Although the term “above” is used in this description, it should beunderstood that the orientation of the touch panel system is irrelevant.The term “above” is intended to be applicable to all such orientations.The touch screen may be configured to determine locations of where touchinput is received (e.g. a starting point, intermediate points and anending point). Actual contact between the touchable surface and theobject may be detected by any suitable means, including, for example, bya vibration sensor or microphone coupled to the touch panel. Anon-exhaustive list of examples for sensors to detect contact includespressure-based mechanisms, micro-machined accelerometers, piezoelectricdevices, capacitive sensors, resistive sensors, inductive sensors, laservibrometers, and LED vibrometers.

UI manager 26 is configured to display UI element for in place editingof a selected value and process the received input device/display 202. Auser interface element 216 is displayed for in place editing of valuesin response to a value being selected. For example, in response toselecting spreadsheet cell 232 that includes a date value, UI element216 is displayed near the value that receives a slide gesture foradjusting the value in place. As illustrated, the selected cell isdistinguished from the other cells by changing a fill color of the celland selecting the part of the value that is currently beingedited/adjusted. Other methods may be used to distinguish the selectedcell (e.g. border around cell, different fill pattern, changing adisplay of the value, and the like). In the current example, a user maytap on the “+” or “−” indicator to change the value in addition toperforming the swipe gesture. The user interface displays a differentlevel for each of the discrete parts of the date value. As illustratedthe user has performed a swipe gesture on the first level that currentlyshows a change in the “15” to “16”. When the user ends the swipegesture, the value within the cell is set to the currently selectedvalue. The value in the cell may also update in real time as the swipegesture is being performed. To change the year value or the month valuewithin the date value, the user moves the swipe gesture from the daylevel to the desired level. The user interface displayed and method(s)used to adjust the value may be based on the type of value and thestructure and content of the document. For example, the content of thecells near the selected cell may be used to determine the type of value,a predicted value, and the like.

FIGS. 3 and 4 show illustrative processes for displaying and interactingwith a user interface element for editing a value in place. When readingthe discussion of the routines presented herein, it should beappreciated that the logical operations of various embodiments areimplemented (1) as a sequence of computer implemented acts or programmodules running on a computing system and/or (2) as interconnectedmachine logic circuits or circuit modules within the computing system.The implementation is a matter of choice dependent on the performancerequirements of the computing system implementing the invention.Accordingly, the logical operations illustrated and making up theembodiments described herein are referred to variously as operations,structural devices, acts or modules. These operations, structuraldevices, acts and modules may be implemented in software, in firmware,in special purpose digital logic, and any combination thereof.

FIG. 3 shows a process for selecting and adjusting a value in placeusing a user interface element.

After a start block, process 300 moves to operation 310, where a valueis displayed within a graphical window. The value may associated withone or more applications. For example, the application may be an officeproductivity application (e.g. spreadsheet, word-processing,presentation, . . . ) or some other type of application. The value maybe displayed within a document and/or within a user interface used forsetting values. According to an embodiment, the value(s) to be adjustedare displayed in a document such as a spreadsheet, a word processingdocument, a table and the like.

Flowing to operation 320, a determination is made as to when a value isselected for editing. A value may be selected using various methods. Forexample, a user may select a cell by: tapping on a value/cell/userinterface option, moving a pointer (e.g. mouse, pen) over avalue/cell/user interface option moving a pointer (e.g. mouse, pen) overa value/cell/user interface option and clicking, and the like.

Moving to operation 330, a determination is made as to what type ofvalue is selected. The value may contain a single part or more than onepart (e.g. date, social security number, complex number, . . . ). Thetype of value may be a numerical value or a discrete value that isselected from a set of values. For example, the value may be a day,month, type of item, a value selected from a row/column, and the like.The type of value may be determined from the type of value that isallowed by the cell/location/field within the document/table and/ordetermined from content around the selected value. For example, one ormore cells within a spreadsheet may be examined to determine the type ofvalues within the cells near the selected cells (e.g. it may bedetermined that the selected cell even though it is currently emptyshould contain a date that is near the current year “2011”). Generally,the type of value may be any type of value that is displayed near theselected value. For example, the values may come from the samerow/column of the selected value.

Transitioning to operation 340, a user interface element for editing avalue in place is displayed. The UI element may be displayed in responseto the selection, the action that indicates the cell/value/field is tobe edited (e.g. generic edit action) and/or through some other UI tolaunch the UI element, and the like. The UI element is displayed nearthe display of the value such that input to adjust the value is receivednear the display of the value. According to an embodiment, the UIelement comprises a display of a line that extends outward from eachside of the value (See FIG. 8). According to another embodiment, the UIappears near a display of the value and includes a displayed level foreach part of the value (See FIGS. 5-7). According to an embodiment, theUI element is alpha blended such that content displayed under the UIelement remains visible.

Flowing to operation 350, a swipe gesture is received to adjust thevalue. The swipe gesture may be a touch input and/or an input receivedusing another input device (e.g. mouse). According to an embodiment, theswipe gesture is a touch input that detects a swipe of a finger (e.g.horizontal/vertical movement that moves from a starting point to anending point). The swipe gesture may adjust the value at differentspeeds depending on the location of the swipe from the selected value.For example, if the swipe is near the value, the value may beincremented by a single value whereas when the swipe is farther away,the value may be incremented by a multiplier (e.g. two, four, ten)depending on the distance from the value. The range of potential valuesmay also be used to determine the speed of adjustment. For example, whenthe range of value is small (e.g. one to ten) the adjustment of thevalue may be slower. When the range of the value is larger (e.g. onethousand to one hundred thousand) the adjustment of the value may befaster and/or the multiplier may be larger). The same swipe gesture maybe used to set one or more parts of the value. For example, a user mayplace their finger down on the UI element, move to the first level andmove left/right to set a value within the first level, and then move upto another level without lifting their finger and then move left/rightto set the value for that level. According to an embodiment, a user maycontinue to adjust different parts of the value by moving to differentlevels and selecting a value for that level as long as the same swipegesture (e.g. fingertip remains down on the display) is detected.

Moving to operation 360, the display is updated with the adjusted value.The display of the value may be updated during the time the swipegesture is being received and/or after the swipe gesture is complete.For example, while a user is performing the swipe gesture, the value maybe shown as changing. According to an embodiment, a display of the UIelement is updated to reflect a current adjusted value without updatingthe display of the selected value.

Transitioning to operation 370, the adjusted value is set when the swipegesture is ended (e.g. the user removes their finger from the display orthe user unselects the value using some other input method).

The process then flows to an end block and returns to processing otheractions.

FIG. 4 shows a process for selecting and adjusting different parts of avalue.

After a start block, process 400 moves to operation 410, where thedifferent parts of a value are determined. The value may contain one ormore parts. For example, an integer value contains one part, whereas adate value and social security value each contain three different parts.Generally, a part of a value may be adjusted independently from theother part(s) of the value. A value may also be separated into partsbased on significant digits. Other divisions of the value into parts mayalso be determined. For example, a first part of the value may be theones column, a second part may be the tens column, a third part may bethe hundreds column, and the like.

Flowing to decision operation 420, a determination is made as whetherthe value has more than one part.

When the value does have more than one part, the process flows tooperation 430, where a UI element is displayed that includes a displayfor each part on a different level of the display of the UI element.

When the value does not have more than one part, the process flows tooperation 440 where the UI element is displayed with a single leveldisplay.

Moving to operation 450 from either operation 430 or operation 440, theswipe gesture is received.

Transitioning to operation 460, a determination is made as to what levelthe swipe was made. For example, a swipe at one level adjusts a part ofthe value that is associated with that level. As discussed above, morethan one part of a value may be set using the same swipe gesture.

Flowing to operation 470, the display of the value is updated inresponse to the swipe gesture.

The process then flows to an end block and returns to processing otheractions.

FIGS. 5-8 show exemplary windows for adjusting a value in place using aUI displayed in response to selecting a value. FIGS. 5-8 are forexemplary purpose and are not intended to be limiting.

FIG. 5 shows displays for adjusting a value in place within aspreadsheet. As illustrated, window 510 and window 520 each display aspreadsheet 512 that shows a name column, a GPA column, and an exam datecolumn in which a user has selected cell 520 for adjusting the currentvalue “2.6” in place using a UI element. More or fewer columns/areasthat include values may be included within windows 510 and 520. A windowmay be a window that is associated with a desktop application, a mobileapplication and/or a web-based application (e.g. displayed by abrowser). The window may be displayed on a limited display device (e.g.smart phone, tablet) or on a larger screen device.

As illustrated, selected cell 520 is displayed differently from theother cells of the spreadsheet to indicate to a user that the cell iscurrently selected. While cell 520 is shown as being highlighted, otherdisplay options may be used to indicate the cell is selected (e.g.border around cell, hashing, color changes, font changes and the like).

In response to determining to edit cell 520 (e.g. selection, editaction, selection of another UI element . . . ), UI element 514 isdisplayed. In the current example, two levels are displayed within UIelement 514 since the GPA value comprises two parts. According to anembodiment, a default part of the value is selected to be adjusted. Forexample, the second part of the GPA value is selected by default to bepart of the value that is displayed on the first level. Referring to UIelement 514, the first level shows the values 4, 5, 6, 7 and 8 and thesecond level shows the values 1, 2 and 3. More or fewer potential valuesmay be displayed on each level. For example, the second level for a GPAvalue could show all of the potential values (0-4). In the currentexample, the user has selected cell 520 by tapping the cell and then hasdragged their finger to the right to select “7” as the adjusted value.In response to the swipe gesture, a graphical indicator is used withinUI element 514 to show the currently adjusted value. In the example, thecurrent value based on the current swipe gesture is shown larger. Othermethods of indicating a current value may also be shown (e.g. changingfont, placing a border around the value, changing a color of the value,and the like). When the user ends the swipe gesture (e.g. removing theirfinger from the display, releasing a mouse button, . . . ) the value isadjusted in the cell. If the user were to release at the current pointin the example, 2.6 would be replaced with 2.7. A user could movefurther to the right/left in the UI element 514 to select a value thatin not initially shown. For example, when the user moves on the firstlevel past the “7” value or some other determined value, additionalvalues may be shown within the UI element 514 (e.g. 9, 10 . . . ).Similarly, when the user moves to the left, lower values may be shownwithin the UI element 514 (e.g. 3, 2, 1).

Window 520 shows the user adjusting the second part of the value for theGPA. To select the second level, the user has moved to the second leveland has moved to the right that selects the 3 value for the GPA.

According to an embodiment, the contents of the cell and the surroundingcells (in this case the GPA column) are used to assist in determiningpotential values that may be included within a cell. This informationmay be used in determining how many levels/potential values to displaywithin the UI element. As shown, UI element 514 is displayed alphablended, such that a portion of the content below the UI element canstill be seen. The UI element 514 may also be shown using differentmethods (e.g. no alpha blending, different colors . . . ). The UIelement 514 may be displayed in different locations. For example, UIelement 514 could be shown to the left, right and/or over the display ofthe selected cell.

FIG. 6 shows displays for adjusting a value in place within aspreadsheet. As illustrated, window 610 and window 620 each include aspreadsheet that currently shows a Grade column, a sex column, and asiblings column. In the current example, the grade column may comprise avalue that is selected from freshman (FR), sophomore (SO), junior (JR)and senior (SR). The sex column may comprise a male (M) value or afemale (F) value. The siblings column may comprise a value that startsat 0 and goes up.

Window 610 shows a user selecting cell D6 that is indicated to beselected by displaying a thicker border around the cell. In response tothe selection, UI element 612 is displayed that shows four potentialdifferent values that can be selected for the grade value. Fewerpotential values could be shown in UI element 612 (e.g. one, two,three). In the current example, the user has performed a swipe gestureto currently select the blank cell D6 that is shown larger within UIelement 612. In response to ending the swipe gesture, cell D6 is updatedto “Senior” as can be seen in window 620. Before selection, cell D6may/may not contain a value.

Window 620 shows a user selecting cell F6 that is indicated to beselected by displaying a fill within the cell. In response to theselection, UI element 622 is displayed that shows potential values thatcan be selected for the siblings value. In the current example, the userhas performed a swipe gesture to currently select the value 3 (shownwithin a border) for cell D6. As discussed above, if the user movesbeyond/near the end of the initially displayed values within the UIelement more values may be shown. For example, UI element 624 may bedisplayed when a user moves to near the end or at the end of theinitially displayed values. As illustrated, values 9, 10, and 11 aredisplayed when the user moves to the “8” value within UI element 622.

FIG. 7 shows displays for adjusting a value in place within a document.As illustrated, window 710, window 720, window 730 and window 740 eachinclude a display of a document that includes values that may beselected for changing the value in place.

Window 710 shows a user selecting a social security number within thedocument. According to an embodiment, any discrete value within adocument may be selected.

Window 720 shows UI element 722 displayed in response to the selectionof the social security number. As illustrated, UI element 722 includes adisplay level of potential values for each part of the social securitynumber. The value may divided into different parts. For example, a levelmay be displayed for each digit of the number, or different chunks ofthe value (ex. the 2211 part of the displayed value could be shown astwo different levels, each with 2 digits). In the current example, thethird part of the social security number is shown highlighted toindicate that the third part is the currently selected part of the valuefor receiving adjustments. The value 2210 is selected by the user movingthe swipe gesture to the left. Moving farther left causes the UI element722 to adjust the display of the potential values (e.g. 2209, 2208, 2207. . . ). The user may select a different level by moving the swipegesture to the desired level.

Window 730 shows a user selecting an integer value 2 in the document. Inresponse to selecting the integer value UI element 732 is displayed withpotential values for selection.

Window 740 shows a user selecting the B1 brand value. For example, thevalue may be a type of car that comprises a limited number of potentialvalues.

FIG. 8 shows displays for adjusting a value in place within a documentusing a slide UI element.

Displays 808, 810, 811, 812, 814 and 816 show a user adjusting a valuein place using a slider UI element.

Display 808 shows a value 2 before being selected for editing in place.

Display 810 shows an initial display of a UI element that is displayedin response to the value 2 being selected. As illustrated, a line isplaced to the left and to the right of the value to edit in place. Theline may be displayed using different methods. For example, a portion ofthe line to the left of the number may be displayed using a first colorand a portion of the line to the right of the number may be displayedusing a different color. A box may be displayed (e.g. display 811) toshow a slider, and the like.

Display 812 shows the user sliding the value 2 to the right such that acurrent value is 6. According to an embodiment, the value itself movesalong the line. According to an embodiment, the initial value may remainat the initial location and a value of the currently edited value may beshown along the slider line. According to another embodiment, the valueupdates at the initially displayed location in response to the swipegesture. For example, display 817 shows a user sliding their finger tothe right of the number and in response to the sliding the value isupdated. The value may be updated based on a distance of the gesturefrom the number and/or a velocity of the movement from the number. Forexample, the farther away/the faster the gesture the quicker the numberchanges. The value may stop changing in response to different actions.For example, a user may end the gesture by moving their finger off ofthe display or move their finger back to the initially displayedlocation as illustrated in display 818.

Display 814 shows the user sliding the value back to the left to acurrent value of 1.

Display 816 shows the value 1 as the set value in response to a userending the swipe gesture. Ending the swipe gesture shows the last editedvalue appearing to “snap in” place (i.e. the position of the valuereturns to the initial position).

Window 820, window 830, and window 840 each show a user interface thatis configured to receive selections for setting options for searchingfor a hotel. The user interface may be configured for other applicationsand receiving other values. As shown, window 820 shows an option forselecting a hotel, an option for setting a check-in date, an option forsetting a check-out date, an option for setting a number of guests, anoption for setting a number of rooms and a search option. In the currentexample, each option that sets a value may be set using a UI element asdescribed and illustrated herein.

For example, a user could select the guests value to use a slider UIelement to adjust the value for the number of guests. The UI elementshown in FIGS. 4-7 could also be used. Further, a combination of the UIelements could be used together.

Window 830 shows a user sliding the value to 4. In response to releasingthe value and ending the sliding gesture, the value 4 is set to theadjusted value.

The above specification, examples and data provide a completedescription of the manufacture and use of the composition of theinvention. Since many embodiments of the invention can be made withoutdeparting from the spirit and scope of the invention, the inventionresides in the claims hereinafter appended.

What is claimed is:
 1. A method for receiving input to adjust a valuewith more than one part, comprising: in response to determining to edita value selected in a document wherein the value selected has more thanone part, displaying a user interface element for adjusting the valueselected in the document; displaying a different level in the userinterface element corresponding with each part of the value selected inthe document; receiving input for adjusting one of the levels in theuser interface element without updating the display of the valueselected in the document; in response to receiving input for adjustingone of the levels in the user interface element, adjusting the displayof the user interface element to a new value; and after adjusting thedisplay of the user interface element to the new value, showing thevalue selected in the document as changing to the new value from theuser interface element.
 2. The method of claim 1, wherein displaying theuser interface element comprises displaying a line that appears to aleft of a display of the value and to a right of the display of thevalue.
 3. The method of claim 2, wherein in response to a swipe gesture,the value appears to slide along the line.
 4. The method of claim 1,further comprising receiving a swipe gesture, wherein receiving theswipe gesture comprises determining a level of the swipe and adjustingthe part of the value that corresponds to the level of the swipe.
 5. Themethod of claim 1, further comprising receiving a swipe gesture toadjust the value, wherein receiving the swipe gesture to adjust thevalue comprises receiving a touch gesture that comprises detecting afinger sliding along the display near the display of the value.
 6. Themethod of claim 1, wherein displaying the user interface elementcomprises displaying potential values above a display of the value. 7.The method of claim 6, wherein displaying potential values above adisplay of the value comprises displaying potential values for each partof a value that may be set at different levels.
 8. The method of claim6, wherein displaying the potential values comprises displaying thepotential values as an alpha blend such that a portion of the displayremains visible that is located beneath the display of the potentialvalues.
 9. The method of claim 1, wherein adjusting the display of theuser interface element and the display of the value in comprisesdetermining a distance from the value to a current swipe position andadjusting a speed of the change of the value in response to the positionincreasing.
 10. The method of claim 1, further comprising determining atype of category that is associated with the value and adjusting thevalue based on the determined type of category.
 11. A computer-readablemedium storing computer-executable instructions for in place editing ofvalues, comprising: displaying a value having more than one part withina graphical display; determining when the value is selected; in responseto determining the value is selected, displaying a user interfaceelement for adjusting the value that is selected and displaying adifferent level in the user interface element corresponding with eachpart of the value that is selected; receiving input for adjusting one ofthe levels in the user interface element without updating the display ofthe value selected in the document; in response to receiving input foradjusting one of the levels in the user interface element, adjusting thedisplay of the user interface element to a new value; and afteradjusting the display of the user interface element to the new value,showing the value selected in the document as changing to the new valuefrom the user interface element.
 12. The computer-readable medium ofclaim 11, further comprising displaying potential values for each partof a value at different positions on the display of the user interfaceelement.
 13. The computer-readable medium of claim 11, furthercomprising receiving a swipe gesture for determining a level andadjusting the part of the value that corresponds to the level of theswipe.
 14. The computer-readable medium of claim 11, further comprisingdisplaying potential values as an alpha blend such that a portion of thedisplay remains visible that is located beneath the display of thepotential values.
 15. The computer-readable medium of claim 11, furthercomprising determining a distance from the value to a current swipeposition and adjusting a speed of the change of the value in response tothe position increasing.
 16. The computer-readable medium of claim 11,further comprising determining a type of category that is associatedwith the value by examining a cell and at least one surrounding cellnear the selected value.
 17. An apparatus for in place editing ofvalues, comprising: a display that is configured to receive touch input;a processor and memory; an operating environment executing using theprocessor; an application that includes values that may be changed; anda user interface manager operating in conjunction with the applicationthat is configured to perform actions comprising: displaying a valuehaving more than one part within a graphical display; determining whenthe value is selected; in response to determining the value is selected,displaying a user interface element for adjusting the value that isselected and displaying a different level in the user interface elementcorresponding with each part of the value that is selected; receivinginput for adjusting one of the levels in the user interface elementwithout updating the display of the value selected in the document; inresponse to receiving input for adjusting one of the levels in the userinterface element, adjusting the display of the user interface elementto a new value; and after adjusting the display of the user interfaceelement to the new value, showing the value selected in the document aschanging to the new value from the user interface element.
 18. Theapparatus of claim 17, wherein displaying the user interface elementcomprises displaying the user interface element as an alpha blend suchthat a portion of the display remains visible that is located beneaththe display of the user interface element.
 19. The computer-readablemedium of claim 17, further comprising determining a distance from thevalue to a current swipe position and adjusting a speed of the change ofthe value in response to the position increasing.
 20. The system ofclaim 17, further comprising examining content of a document near thevalue to determine potential values to display within the user interfaceelement.